<?php
/**
 * User: tridungpham
 * Date: 7/8/11
 * Time: 1:33 PM
 */
 
class RecruitmentModel extends Model
{
    function __construct()
    {
        
    }

    function getRecruitmentId()
    {
        $db = DataProvider::getInstance();
        $rs = $db->_query("select * from category where code like 'RECRUITMENT'");
        if ($rs->getSize() == 0)
        {
            Utility::error("Unknown category recruitment!!!! Please report technical administrator");
        }
        else
        {
            return $rs->getRow(0)->id;
        }
    }

    function getRecruitmentList()
    {
        $db = DataProvider::getInstance();
        $id = $this->getRecruitmentId();
        $sql = "select p.*,u.username from post p,user u  where p.user_id = u.id and  category_id = $id";
        return $db->_query($sql);
    }

    function handleAdd()
    {
        $this->loadTable('post');
        $this->loadLibrary('PostWrapper');
        $input = PostWrapper::getInstance();
        $flagError = FALSE;

//        var_dump($input);exit;
        if (strlen($input->title) == 0 || strlen($input->title) > 1024)
        {
            $flagError = TRUE;
            $errorArr[] = "Tiêu đề bài viết không được để trống hoặc nhiều hơn 1024 kí tự";
        }

        if (isset($input->summary) && strlen($input->summary) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Tóm tắt không được nhiều hơn 2000 kí tự";
        }

        if (isset($input->detail) && strlen($input->detail) > 100000)
        {
            $flagError = TRUE;
            $errorArr[] = "Nội dung không được nhiều hơn 100000 kí tự";
        }

        if ($flagError)
        {
            $result['has_Error'] = TRUE;
            $result['error'] =& $errorArr;
            $result['input'] =& $input;
            return $result;
        }

        $postTbl =& $this->tables['post'];
        $postTbl->set('title', htmlentities($input->title, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['summary']))
            $postTbl->set('summary', htmlentities($input->summary, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['detail']))
            $postTbl->set('detail', htmlentities($input->detail, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['avatar']))
            $postTbl->set('avatar', "");
        $postTbl->set('category_id', $this->getRecruitmentId());
        $postTbl->set('status', $input->status);
        $postTbl->set('p_date', date("Y-m-d H:i:s"));
        $postTbl->insert();
        $result['message'] = "Thêm tin thành công";
        $result['inserted_id'] = $postTbl->inserted_id();
        return $result;
    }

    function handleEdit($id)
    {
        $this->loadTable('post');
        $this->loadLibrary('PostWrapper');
        $input = PostWrapper::getInstance();
        $flagError = FALSE;

        //        var_dump($input);exit;
        if (strlen($input->title) == 0 || strlen($input->title) > 1024)
        {
            $flagError = TRUE;
            $errorArr[] = "Tiêu đề bài viết không được để trống hoặc nhiều hơn 1024 kí tự";
        }

        if (isset($input->summary) && strlen($input->summary) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Tóm tắt không được nhiều hơn 2000 kí tự";
        }

        if (isset($input->detail) && strlen($input->detail) > 100000)
        {
            $flagError = TRUE;
            $errorArr[] = "Nội dung không được nhiều hơn 100000 kí tự";
        }

        if ($flagError)
        {
            $result['has_Error'] = TRUE;
            $result['error'] =& $errorArr;
            $result['input'] =& $input;
            return $result;
        }

        $postTbl =& $this->tables['post'];
        $postTbl->set('title', htmlentities($input->title, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['summary']))
            $postTbl->set('summary', htmlentities($input->summary, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['detail']))
            $postTbl->set('detail', htmlentities($input->detail, ENT_QUOTES, "UTF-8"));
        if (isset($_POST['avatar']))
            $postTbl->set('avatar', "");
        $postTbl->set('category_id', $this->getRecruitmentId());
        $postTbl->set('status', $input->status);
        $postTbl->set('p_date', date("Y-m-d H:i:s"));
        $postTbl->update(array('id' => $id));
        $result['message'] = "Sửa tin thành công";
        return $result;
    }
    
    function getRecord($id)
    {
        $this->loadTable('post');
        return $this->tables['post']->get(array('id' => $id));
    }

    function remove($id)
    {
        $this->loadTable('post');
        $this->tables['post']->remove(array('id' => $id));
    }

    function handleMassAction()
    {
        $this->loadLibrary('postwrapper');
        $post = PostWrapper::getInstance();

        switch($post->mass_action)
        {
            case 'remove':
                {
                    foreach($post->cb as $id)
                    {
                        $this->remove($id);
                    }
                }
                break;
            
        }
    }
}